SQL Meerdere rijen inserten
Home

SQL Meerdere rijen inserten

SQL Meerdere rijen inserten

In SQL kan je meerdere rijen in een INSERT statement toevoegen.

Probleem

Hoe voeg je meer dan één rij toe aan een tabel met 1 INSERT statement?

Oplossing

use JefInghelbrecht;
insert into boeken (
   Voornaam,
   Familienaam,
   Titel,
   Stad,
   Uitgeverij,
   Verschijningsjaar,
   Herdruk,
   Commentaar,
   Category,
   InsertedBy
)
values
('Gerard', 'Visser', 'Heideggers vraag naar de techniek', 'Nijwegen', '', '2014', '', '', '', ''),
('Diderik', 'Batens', 'Logicaboek', '', 'Garant', '1999', '', '', '', '')

Dat kan je nu ook in MS SQL kan doen (vanaf versie 2008 R2).

Oefening (minimum twee rijen)

Voeg mijn initialen (JI) toe in de kolom InsertedBy.

Opmerking

Als je een enkel aanhalingsteken in een string wil typen in SQL moet je het enkel aanhalingstelen escapen omdat het enkel aanhalingsteken eigenlijk een instructie is die aangeeft dat wat volgt een tekenreeks is. Om een enkel aanhalingsteken te escapen ontdubbel je het bv:

'Le siècle d''or'

Het eerste enkel aanhalingsteken begint de string, het tweede en derde geven een enkel aanhalingsteken dat in de string wordt opgenomen en het vierde sluit de string af.

-- JI
-- 20 november 2012
-- Bestandsnaam: BoekenInsertAllJI.sql
-- gegevens komen uit de Korte Introductie
--
-- Opmerking
-- Als je een enkel aanhalingsteken in een string wil typen in SQL
-- moet je het enkel aanhalingstelen escapen omdat het enkel aanhalingsteken
-- eigenlijk een instructie is die aangeeft dat wat volgt een tekenreeks is.
-- Om een enkel aanhalingsteken te escapen ontdubbel je het bv:
-- 'Le siècle d''or'
-- Het eerste enkel aanhalingsteken begint de string, het tweede en derde geven
-- een enkel aanhalingsteken dat in de string wordt opgenomen en het vierde
-- sluit de string af.
-- Zet de use in commentaar om te voorkomen dat medecursisten gegevens
-- in jou tabel inserten. We gaan immers die insert scipts met elkaar delen.
use MarcTuinstra;
insert into Boeken (
   Voornaam,
   Familienaam,
   Titel,
   Stad,
   Uitgeverij,
   Verschijningsjaar,
   Herdruk,
   Commentaar,
   Categorie,
   InsertedBy
)
values 
('Samuel', 'Ijsseling', 'Heidegger. Denken en Zijn. Geven en Danken', 'Amsterdagm', '', '2014', '', 'Nog te lezen', 'Filosofie', 'JI'),
('Jacob', 'Van Sluis', 'Lees wijzer bij Zijn en Tijd', '', 'Budel', '1998', '', 'Goed boek', 'Filosofie', 'JI'),
('Emile', 'Benveniste', 'Le vocabulaire des institutions Indo-Européennes. 2. Pouvoir droit religion', 'Paris?', 'Les ditions de minuit', '1969', '', 'Een goed geschiedenis boek','Linguistiek', 'JI'),
('Evert W.', 'Beth', 'De Wijsbegeerte der Wiskunde. Van Parmenides tot Bolzano', 'Antwerpen', 'Philosophische Biliotheek Uitgeversmij. N.V. Standaard-Boekhandel', '1944', '?', 'Een goed boek', 'Filosofie', 'JI'),
('Evert W.', 'Beth', 'Wijsbegeerte der Wiskunde', 'Antwerpen', 'Philosophische Biliotheek Uitgeversmij. N.V. Standaard-Boekhandel', '1948', '?', 'Een goed boek','Wiskunde', 'JI'),
('Rémy', 'Bernard', 'Antonin le Pieux. Le siècle d''or de Rome 138-161', '?', 'Librairie Arthme Fayard', '2005', '?', 'Een goed boek', 'Geschiedenis', 'JI'),
('Marc', 'Bloch', 'Rois et serfs et autres écrits sur le servage', 'Paris', 'La boutique de l''histoire', '1996', '?', 'Een goed boek','Geschiedenis', 'JI'),
('Pierre', 'Bonte en Michel Izard', 'Dictionnaire de l''etnologie et de l''anthropologie', '?', 'PUF', '1991', '?', 'Een goed boek','Anthropologie', 'JI'),
('Robert', 'Bly', 'The sibling society', 'Londen', 'Persus', '1996', '?', 'Een interessant boek', 'Antropologie','JI'),
('Fernand', 'Braudel', 'De middellandse zee. Het landschap en de mens', 'Amsterdam/Antwerpen', 'Uitgeverij Contanct', '1992', '?', 'Uit het Frans vertaald: La méditerranée. La part du milieu. Parijs: Librairie Armand Colin, 1966', 'Geschiedenis', 'JI'),
('Timothy', 'Gowers', 'Wiskunde, de kortste introductie', 'Utrecht', 'Uitgeverij Het Spectrum B.V.', '2003', '', 'Oorpronkelijke titel: Mathematics a very schort introduction. Oxford University Press, 2002', 'Wiskunde', 'JI');

Kijk of de rijen in de tabel zijn toegevoegd:

select * from Boeken;

Sla dit script op in een bestand met de naam BoekenInsertAllJI.sql.

Lengte van een kolom wijzigen

Je zal merken dat de kolom Uitgeverij niet lang genoeg is. Maak een script met de naam BoekenAlterUitgeverijAlterLength.sql om de lengte van de Uitgeverij kolom te vergroten.

-- JI
-- 20 november 2012
-- vergroot de kolom uitgeverij
-- Bestandsnaam: BoekenAlterUitgeverijAlterLength.sql
use JefInghelbrecht;
alter table Boeken alter column Uitgeverij nvarchar (255);

Opdracht

  1. Maak een script om 10 boeken in de tabel Boeken te inserten en bewaar die onder de naam BoekenInsertAllJeEigenInitialen.sql.
  2. Vergeet niet de kolom Categorie in te vullen!!
  3. Zoek de boeken op bij Amazon, standaardboekhandel.be, bol.com of Proxis.

JI
2020-01-26 11:06:07